PROTO Sony_BindSharedNode [
field SFNode transformNode NULL
field SFNode scriptNode NULL
] { }
このノードは、Community Place以外のVRML2.0ブラウザが無事このノードを無視
出来るよう、何も拡張されないように定義されている。Community Placeブラウザでは、このノードは特別な扱いを受けている。 このノードのtransformNodeフィールドを指すtransformノードは、クライアント間で 共有できるように作られる。 言い換えると、このフィールドで指されていないノードは共有されない、となる。 TransformNodeフィールドは指される必要が有り、その値は必ずTransformノード でなくてはならない。
scriptNodeフィールドの値がNULLでない場合、その値はScriptノードでなくては ならない。ScriptノードのeventInはリモートから呼ぶことができる。 第1引数にtransformNodeフィールドの中で示されるTransformノードとなる対象を、 第2引数にScriptノード中に現れるEventIn名となるeventIn名を、それぞれ指す ことで、sendApplSpecific()やsendApplSpecificWithDist()といったJavaのAPIを 使うことができる。
これらのAPIの3番目の引数は、ScriptノードのeventInの値になるであろう文字列値 である。eventInはこれらのAPIの使用にあたって値を受ける為にSFString型でなくて はならない。
例として、次のようになる。
PROTO Sony_BindSharedNode [
field SFNode transformNode NULL
field SFNode scriptNode NULL
] { }
DEF T1 Transform { ... }
DEF S1 Script {
eventIn SFString IN1
eventIn SFString IN2
...
}
Sony_BindSharedNode { transformNode USE T1 scriptNode USE S1 }
PROTO Sony_Appearance [
field SFBool backface FALSE
exposedField SFString description ""
exposedField SFNode material NULL
exposedField SFNode texture NULL
exposedField SFNode textureTransform NULL
] {
Appearance {
material IS material
texture IS texture
textureTransform IS textureTransform
}
}
PROTO Sony_WorldInfo [
field MFString archive []
field SFInt32 armLength -1
field SFBool avatarRoom FALSE
field SFInt32 backgroundImageType 0
field SFString cpBureau ""
field SFString cpBureauWLS ""
field SFBool collisionSound TRUE
field SFBool collisionDisplay TRUE
exposedField SFBool turnButtonAvailable TRUE
exposedField SFBool floatButtonAvailable TRUE
exposedField SFBool homeButtonAvailable TRUE
field SFInt32 soundDeviceRate 22050
field SFInt32 soundDeviceBits 8
]{}
アーカイブ自身は、LHAを用いて生成し、VRMLファイルと同じディレクトリに 置くべきである。
例)
Sony_WorldInfo {
archive ["foo.lzh"]
}
例)
Sony_WorldInfo {
armLength 5
}
例)
Sony_WorldInfo {
avatarRoom TRUE
}
Sony_WorldInfo {
backgroundImageType 0
}
例)
Sony_WorldInfo {
cpBureau "vsserver.foo.com:5000"
}
or
Sony_WorldInfo {
cpBureau "12.23.34.45:5000"
}
例)
Sony_WorldInfo {
cpBureauWLS "vsserver.foo.com:6000"
}
or
Sony_WorldInfo {
cpBureauWLS "12.23.34.45:6000"
}
例)
Sony_WorldInfo {
collisionSound FALSE
}
例)
Sony_WorldInfo {
collisionDisplay FALSE
}
例)
Sony_WorldInfo {
turnButtonAvailable FALSE
floatButtonAvailable FALSE
homeButtonAvailable FALSE
}
例)
Sony_WorldInfo {
soundDeviceRate 22050
soundDeviceBits 8
}